import {uploadFile} from './api'
export const defaultTime = [
  new Date(2000, 1, 1, 0, 0, 0),
  new Date(2000, 2, 1, 23, 59, 59),
];

// 处理 HTML 内容中的 <img> 标签
export async function processHtmlImage(htmlContent) {
  // 定义 OSS 前缀
  const ossPrefix = 'https://xc-login.oss-cn-shenzhen.aliyuncs.com';

  // 匹配 <img> 标签的正则表达式
  const imgRegex = /<img.*?src="(.*?)".*?>/g;
  let match;

  // 存储所有替换任务的 Promise
  const tasks = [];

  // 遍历所有的 <img> 标签
  while ((match = imgRegex.exec(htmlContent)) !== null) {
    const originalUrl = match[1];

    // 检查是否不以指定的 OSS 前缀开头
    if (!originalUrl.startsWith(ossPrefix)) {
      // 创建一个任务进行异步操作
      const task = (async () => {
        try {
          // 下载图片
          const response = await fetch(originalUrl);
          const blob = await response.blob();

          // 将 Blob 数据封装到 FormData
          const formData = new FormData();
          const timestamp = new Date().getTime();
          const fileName = `image_${timestamp}.jpg`;
          formData.append('file', blob, fileName); // 文件名可以根据需要修改
          formData.append('alias', 'notice-message-public');

          // 上传文件并获取上传的 URL
          const { data } = await uploadFile(formData, '/message/storage/signature/upload');

          // 替换 HTML 中的 src 链接为新上传的链接
          htmlContent = htmlContent.replace(originalUrl, data); // 确保 data.url 是返回的链接字段
        } catch (error) {
          console.error('处理图片 URL 时出错:', originalUrl, error);
        }
      })();

      // 将任务添加到任务列表
      tasks.push(task);
    }
  }

  // 等待所有任务完成
  await Promise.all(tasks);

  // 返回更新后的 HTML 内容
  return htmlContent;
}